<?php

class uye extends CI_Controller
{
	
	public function __construct()
	{
		parent::__construct();
		
		// Helperları Yükle
		$this->load->helper("ayarlar");
		$this->load->helper("urls");
		$this->load->helper("template");
		$this->load->helper("form");
		
		// Kütüphaneleri Yükle
		$this->load->library("input");
		$this->load->library("form_validation");
		
		// Modelleri Yükle
		$this->load->model("uyeler");
		
	}
	
	public function giris()
	{
		if(!$this->uyeler->girdi())
		{
			$data["giris_error"] = "";
			
			
			$this->form_validation->set_message("required", "%s boş bırakılamaz.");
			$this->form_validation->set_message("min_length", "%s en az üç karakter olmalıdır.");
			$this->form_validation->set_message("max_length", "%s en fazla on altı karakter olabilir.");
			
			$this->form_validation->set_rules('kadi', 'Kullanıcı adı', 'trim|required|min_length[3]|max_length[16]|xss_cleanrequired');
			$this->form_validation->set_rules('parola', 'Parola', 'trim|required');
	
			if ($this->form_validation->run() == FALSE)
			{
				$this->load->view('uye/giris', $data);
			}
			else
			{
				$giris = $this->uyeler->giris($this->input->post("kadi"), md5($this->input->post("parola")));
				
				if ($giris == False)
				{
					$data["giris_error"] = "<p>Kullanıcı adı veya Parola yanlış lütfen tekrar deneyiniz.</p>";
					$this->load->view('uye/giris', $data);
				}
				else
				{
				    function full_url()
				    {
					    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
					    $protocol = substr(strtolower($_SERVER["SERVER_PROTOCOL"]), 0, strpos(strtolower($_SERVER["SERVER_PROTOCOL"]), "/")) . $s;
					    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
					    return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI'];
				    }
					
					if($this->input->post("referer") == full_url())
					{
						redirect(base_url(), "refresh");
					}
					else
					{
						redirect($this->input->post("referer"), "refresh");	
					}
				}
			}	
		}
		else
		{
			redirect(base_url(), "refresh");
		}
	}

	public function kayit()
	{
		if(!$this->uyeler->girdi())
		{
			$data = array();
			
			$this->form_validation->set_message("required", "%s boş bırakılamaz.");
			$this->form_validation->set_message("min_length", "%s en az üç karakter olmalıdır.");
			$this->form_validation->set_message("max_length", "%s en fazla on altı karakter olabilir.");
			$this->form_validation->set_message("valid_email", "Lütfen geçerli bir mail giriniz.");
			$this->form_validation->set_message("matches", "Girmiş olduğunuz paralolar eşleşmiyor.");
			
			$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
			
		
			$this->form_validation->set_rules('isim', 'İsim', 'trim|required|min_length[3]|max_length[16]|xss_cleanrequired');
			$this->form_validation->set_rules('soyisim', 'Soyisim', 'trim|required|min_length[3]|max_length[16]|xss_cleanrequired');
			$this->form_validation->set_rules('kadi', 'Kullanıcı Adı', 'trim|required|min_length[3]|max_length[16]|xss_cleanrequired|callback_kadi_check');
			$this->form_validation->set_rules('parola', 'Parola', 'trim|required|min_length[8]|max_length[16]|matches[parola_tekrar]');
			$this->form_validation->set_rules('parola_tekrar', 'Parola (T)', 'trim|required');
			$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|callback_email_check');
			$this->form_validation->set_rules('website', 'website', 'prep_url|callback_website_check');
			
			if ($this->form_validation->run() == FALSE)
			{
				$this->load->view('uye/kayit', $data);
			}
			else
			{
				$user = array(
					"kullanici_adi" => $this->input->post("kadi"),
					"aktivasyon_kodu" => $this->uyeler->aktivasyon_olustur(),
					"parola" => md5($this->input->post("parola")),
					"email" => $this->input->post("email"),
					"isim" => $this->input->post("isim"),
					"soyisim" => $this->input->post("soyisim"),
					"website" => $this->input->post("website"),
					"soyisim" => $this->input->post("soyisim"),
					"ip" => $this->input->ip_address(),
					"son_giris" => date("d.m.Y H:i:s")
				);
				
				$kayit = $this->uyeler->kayit($user);
				if($kayit)
				{
					redirect(base_url(), "refresh");
				}
				else
				{
					show_error("Kayıt işlemi sırasında bir hata meydana geldi. Lütfen sorunu site yönetimine bildirin.");
				}
			}
		}
		else
		{
			redirect(base_url(), "refresh");
		}
	}

	public function kadi_check($str)
	{
		if($this->uyeler->kadi_kontrol($str))
		{
			$this->form_validation->set_message('kadi_check', 'Girmiş olduğunuz kullanıcı adı zaten kullanılıyor.');
			return false;
		}
		else
		{
			return true;
		}
	}
	
	public function email_check($str)
	{
		if($this->uyeler->email_kontrol($str))
		{
			$this->form_validation->set_message('email_check', 'Girmiş olduğunuz email zaten kullanılıyor.');
			return false;
		}
		else
		{
			return true;
		}
	}
	
	public function website_check($str)
	{
		if($str == "")
		{
			return true;
		}
		else
		{
			if(preg_match("/^(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/", $str) > 0)
			{
				return true;
			}
			else
			{
				$this->form_validation->set_message('website_check', 'Geçerli bir website adresi giriniz.');
				return false;
			}	
		}
	}
	
	public function cikis()
	{
		$data = "";
		$this->uyeler->cikis();
		redirect(base_url(), "refresh");
	}
}

?>